#include<stdio.h>
#include<string.h>

/*
	size_t strspn(const char *s, const char *accept);
	统计 s 字符串开始地址有多少个字符(不包含终止符'\0')**
	连续属于** accept 字符串集， s 字符值等于 accept 中的字符时计数增1， s 地址自增1，不等时退出计数(函数返回)。
	返回值： s 中有多少个字符连续属于 accept 字符串
*/
int Index(char *s,int len1,char *t,int len2)
{  
   int i=0,j=0;
   while (i<len1 && j<len2) 
   { 
   		if (s[i]==t[i]) //继续匹配下一个字符
 		{ 
 			i++; //主串和子串依次匹配下一个字符
   	 		j++;
 		}
 		else //主串、子串指针回溯重新开始下一次匹配
 		{ 
 			i=i-j+1; //主串从下一个位置开始匹配
   	 		j=0;  //子串从头开始匹配
 		}
   	}
   if (j>=len2) return(i-len2);//返回匹配的第一个字符的下标
   else return(-1); //模式匹配不成功
}


int main()
{
	char str1[100],str2[100],str3[100],str4[100];
	printf("please input string1:\n");
	gets(str1);
	printf("please input string2:\n");
	gets(str2);
	printf("the position you want to find is:%ld\n",strspn(str1,str2));

	printf("please input string3:\n");
	gets(str3);
	printf("please input string4:\n");
	gets(str4);
	
	int len1=strlen(str3);
	int len2=strlen(str4);
	int index=Index( str3, len1, str4, len2);
	if(index!=-1) printf("the string match failure!\n");
	else printf("the string match succeed!\n");
	
	return 0;
}
